#include "esp32.h"
#include "delay.h"
#include "usart2.h"

#include "string.h"

void esp32_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};

    //使用哪些外设的时候，需要先开时钟
    __HAL_RCC_GPIOA_CLK_ENABLE(); //开启时钟
    __HAL_RCC_GPIOC_CLK_ENABLE(); //开启时钟

    GPIO_InitStruct.Pin = GPIO_PIN_8; //设置初始化的PIN脚
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //设置为推挽模式
    GPIO_InitStruct.Pull = GPIO_PULLDOWN; //默认为下拉状态
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; //输出速度
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_13; //设置初始化的PIN脚
    GPIO_InitStruct.Pull = GPIO_PULLUP; //默认为上拉状态
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

    usart2_init(115200);

    esp32_reset();
    ESP32_EN = 0;

    char* str = esp32_write_cmd("AT");
    uint32_t len = strlen(str);
}

void esp32_reset(void)
{
    ESP32_EN = 0;
    delay_ms(10);
    ESP32_EN = 1;

    delay_ms(20);
}

char* esp32_write_cmd(char* str)
{
    // uint8_t len = strlen(str);
    // USART2_Tx((uint8_t*)str, len);
    // return usart2_read(100);
    return "";
}
